package ec.edu.ucacue.siop.proceso.iniciar.datosCalidad;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import java.util.StringTokenizer;

import ec.edu.ucacue.siop.proceso.calculoBorrar.ContDatos;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class LectorHojaDiariaCalidad {

	private String error;
	private List<ContVarCalidad24H> lista;
	private long[] relacion = new long[50];
	private int filaInicio;
	private int filaFin;
	public String getError() {
		return error;
	}
	public void setError(String error) {
		this.error = error;
	}
	public List<ContVarCalidad24H> getLista() {
		return lista;
	}
	public void setLista(List<ContVarCalidad24H> lista) {
		this.lista = lista;
	}
	
	public long[] getRelacion() {
		return relacion;
	}
	public void setRelacion(long[] relacion) {
		this.relacion = relacion;
	}
	
	public int getFilaInicio() {
		return filaInicio;
	}
	public void setFilaInicio(int filaInicio) {
		this.filaInicio = filaInicio;
	}
	public int getFilaFin() {
		return filaFin;
	}
	public void setFilaFin(int filaFin) {
		this.filaFin = filaFin;
	}
	public boolean leer(String nomArchivo, String nomHoja, int filInicio, int filFin, String a_o) {
		lista = new ArrayList<ContVarCalidad24H>();
		File archivo = new File(nomArchivo);
		try {
			Workbook excel = Workbook.getWorkbook(archivo);
			int posFecha = nomArchivo.indexOf(a_o);
			String nomFecha = nomArchivo.substring(posFecha, posFecha+10);
			StringTokenizer tokenFecha = new StringTokenizer(nomFecha,"-");
			int year = Integer.parseInt(tokenFecha.nextToken());
			int mes = Integer.parseInt(tokenFecha.nextToken()) -1;
			int dia = Integer.parseInt(tokenFecha.nextToken());
			int hora;
			Sheet hoja = excel.getSheet(nomHoja);
			for(int i=5; i<50; i++) {
				ContVarCalidad24H var = new ContVarCalidad24H();
				for(int j=filInicio; j<filFin; j++){
					String lectura = hoja.getCell(j, i).getContents();
					hora = i-2;
					ContValCal contedatos = new ContValCal();
					Calendar fecha = Calendar.getInstance();
					fecha.set(year, mes, dia, hora, 0);
					contedatos.setFecha(fecha);
					try{
						lectura = lectura.replace(",", ".");
						contedatos.setValor(Float.parseFloat(lectura));
						var.getLista24Horas().add(contedatos);
						}
					catch(NumberFormatException ex){
					}
				}
				lista.add(var);
			}
			
		} catch (BiffException e) {
			error = "Problemas de aarchivo";
			e.printStackTrace();
			return false;
		} catch (IOException e) {
			error = "problema de archivo";
			e.printStackTrace();
			return false;
		}
		
		return true;
		
	}
	public boolean leerFiltro(String nomArchivo) {
		File archivo = new File(nomArchivo);
		try {
			Workbook excel = Workbook.getWorkbook(archivo);
			Sheet hoja = excel.getSheet(0);
			filaInicio = Integer.parseInt(hoja.getCell(0, 0).getContents());
			filaFin = Integer.parseInt(hoja.getCell(1, 0).getContents());
			String contenido;
			for(int i=1; i<hoja.getRows(); i++){
				contenido  = hoja.getCell(8, i).getContents();
				if(contenido.length()==0) {
					relacion[i] = 0;
				}
				else {
					relacion[i] = Long.parseLong(contenido);
				}
			}
			
		} catch (BiffException e) {
			error = " no abrio el archivo excel";
			e.printStackTrace();
			return false;
		} catch (IOException e) {
			error = "Error de entrada salida";
			e.printStackTrace();
			return false;
		}
		
		
		return true;
		
	}
}
